/*
 * MotorMision.cpp
 *
 *  Created on: 09/06/2013
 *      Author: Juliansci
 */

#include "MotorMision.h"
#include "MisionBanderas.h"
#include "MisionJefe.h"
#include <iostream>
#include "../../red/Server.h"
#include <pthread.h>
using namespace std;

void MotorMision::run() {
	Mision* mision;
	cout << "Empiezo el motor de las misiones en la mision: "  << nombreEscenario<< endl;
	if (nombreEscenario.compare("escenarios/MisionBanderas.yaml") == 0){
		mision = new MisionBanderas(this->server->getEscenario());
		cout << "es la mision de las banderas" << endl;
	}
	else if (nombreEscenario.compare("escenarios/MisionJefe.yaml") == 0){
		mision = new MisionJefe(this->server->getEscenario());
		cout << "es la mision del jefe" << endl;
	}

	cout << "antes hie eesta activa" << endl;
	while(mision->estaActiva()){
		cout << "dentro while" << endl;
		Sleep(1000);
	}

	string nombreGanadores = mision->obtenerGanador();

	list<Connection*> connections = this->server->getConnections();
	cout << "cantidad connections: " << connections.size() << endl;
	list<Connection*>::iterator itConnections= connections.begin();
	Connection* connectionActual;
	for(; itConnections != connections.end(); itConnections++){
		cout << "dentro fooor" << endl;
		connectionActual = *itConnections;
		connectionActual->sendData("termina");
		connectionActual->sendData(nombreGanadores);
		connectionActual->setTrabajando(false);
	}
	Sleep(1000);
	this->server->setTrabajando(false);
	this->server->serverShutdown();
}


